Übersicht über die Befehle des fünften Kursteils
Anmerkung: Parameter, die mit (Pflichtparameter) gekennzeichnet sind, sind
unbedingt anzugeben. Fehlen sie, verweigert der Installer die
Ausführung des Scripts.
User-Level-Handling
(WELCOME )
Schablone: (welcome [<string> <string> ...])
Funktion: Taucht dieser Befehl im Script auf, so wartet der Installer
mit dem Präsentieren der Startup-Screens (Welcome-Screens) bis zu
der Stelle, an der er steht. Sämtlicher Code davor wird also erst
ausgeführt. Wird (WELCOME ) weggelassen, so erscheinen die
Startup-Screens unmittelbar nach der Scriptcompilierung.
Es können außerdem Strings angegeben, die dann zusätzlich zum
Standard-Help-Text der Displays angezeigt werden.
Bemerkung: Die Variablen @user-level und @pretend haben bis hierhin
ihre Default-Werte, sofern diese nicht durch die Tooltypes
beeinflußt wurden.
Beispiel: (set #summe (+ 2 3))
(welcome "2 + 3 ist übrigens " #summe " .")
;Ein Blick in die Hilfe beweißt, daß vor dem Welcome-Screen
;bereits Code abgearbeitet wurde.
(EXIT )
Schablone: (exit [<string> <string> ... (quiet)])
Funktion: Beendet die Script-Ausführung mit der Standard
"Done with installation..."-Message.
Es können Strings angegeben werden, die zusätzlich zu dieser
Message angezeigt werden.
Bei Angabe von (quiet) wird der "Done with installation..."-
Screen unterdrückt.
Bemerkung: Beachten Sie, daß die Variablen @appname und
@default-dest in den Standardtext mit einfließen, es
empfielt sich also, diese richtig zu setzen.
Beispiel: (...
.
.
.
)
(exit (quiet))
(welcome) ;Die Welcome-Screens werden unterdrückt.
(USER )
Schablone: (user <user-level>)
Funktion: Ändert den aktuellen User-Level, <user-level>
ist dabei ein Zahlenwert: 0=NOVICE, 1=AVERAGE, 2=EXPERT.
Rückgabe: Der zuvor aktuelle User-Level.
Beispiel: (set #oldlevel (user 2))
(...)
(user #oldlevel)
Fehlerkontrolle
(TRAP )
Schablone: (trap <trapflags> <statements>)
Funktion: Wird benutzt, um Fehler abzufangen.
Tritt ein Fehler innerhalb der <statements> auf, so wird
die Ausführung dieser abgebrochen und mit dem hinter (TRAP )
auftauchenden Statement fortgefahren.
<trapflags> sind dabei die Fehler, die abgefangen werden
sollen als Bitmaske:
Bit Nr. 0 = Abbruch durch User
Bit Nr. 1 = Zu wenig Arbeitsspeicher
Bit Nr. 2 = Scriptfehler
Bit Nr. 3 = DOS-Error
Bit Nr. 4 = Falsche Parameterangaben
Rückgabe: Der aufgetretene Fehlertyp oder 0, falls kein
Fehler auftrat:
1 = Abbruch durch User
2 = Zu wenig Arbeitsspeicher
3 = Fehler im Script
4 = DOS-Error (siehe interne Variable @ioerr)
5 = Falsche Parameterangaben
Beispiel: (set #err (trap %11111 (...))) ;alle Fehler abfangen
(select #err
(abort "Userabbruch.")
(abort "Zu wenig Arbeitsspeicher.")
(abort "Scriptfehler.")
(abort "Ein DOS-Error ist aufgetreten.")
(abort "Falsche Parameterangaben.")
)
(ONERROR )
Schablone: (onerror <statements>)
Funktion: Definiert eine Statementfolge, die im Falle des Auftretens
eines nicht anderwertig abgefangenen Fehlers nach dem Abbruch des
Scripts ausgeführt wird, um evtl. "Überreste" der Installation zu
beseitigen.
Bemerkung: Kann mehrfach im Script auftauchen, um eine kontext-sensitive
Fehlerkontrolle zu ermöglichen.
Beispiel: (onerror (delete "T:#?.inst"))
(ABORT )
Schablone: (abort [<string> <string> ...])
Funktion: Bricht die Scriptausführung ab und präsentiert eine
Fehlermeldung, die die angegebenen Strings enthält.
Bemerkung: Die in (ONERROR ) definierten Statements werden danach
ausgeführt.
Beispiel: (abort "Willkürlicher Abbruch.")
(DEBUG )
Schablone: (debug <string> <string> ...)
Funktion: Sofern das Script von der Shell gestartet wird, gibt
(DEBUG ) die <string>s in diese aus (wie (MESSAGE ), nur eben in
die Shell). Beim Zusammenfügen der <string>s wird dabei eine
Leerstelle eingebaut.
Bemerkung: Falls eine nicht initialisierte Variable angegeben
wird, schreibt (DEBUG ) "<NIL>" als deren Inhalt.
Beispiel: (set #err (trap %11111 (...)))
(debug "Fehler Nummer" #err "ist aufgetreten.")
(TRANSCRIPT )
Schablone: (transcript <string> <string> ...)
Funktion: Verknüpft die <string>s, fügt einen Zeilenvorschub an
und schreibt das Resultat in das vom Installer angelegte
Logfile, sofern dies der Fall ist.
Beispiel: (transcript "--- eine einfache Trennzeile ---")
Bitmanipulation
(BITAND )
Schablone: (bitand <Bitmaske 1> <Bitmaske 2>)
Funktion: Logisches UND zwischen <Bitmaske 1> und <Bitmaske 2>.
Beispiel: (bitand %01101 %10110) ; liefert %00100
(BITOR )
Schablone: (bitor <Bitmaske 1> <Bitmaske 2>)
Funktion: Logisches ODER zwischen <Bitmaske 1> und <Bitmaske 2>.
Beispiel: (bitor %01101 %10110) ; liefert %11111
(BITXOR )
Schablone: (bitxor <Bitmaske 1> <Bitmaske 2>)
Funktion: Logisches ausschließendes ODER zwischen <Bitmaske 1> und
<Bitmaske 2>.
Beispiel: (bitxor %01101 %10110) ; liefert %11011
(BITNOT )
Schablone: (bitnot <Bitmaske>)
Funktion: Logische Negation von <Bitmaske>.
Beispiel: (not %01101) ; liefert %10010
(SHIFTLEFT )
Schablone: (shiftleft <Bitmaske> <Anzahl>)
Funktion: Verschiebt die Bits von <Bitmaske> um <Anzahl> Stellen
nach links. Von rechts rücken entsprechend Nullen nach.
Beispiel: (shiftleft %011010111 3) ; liefert %010111000)
(SHIFTRIGHT )
Schablone: (shiftright <Bitmaske> <Anzahl>)
Funktion: Verschiebt die Bits von <Bitmaske> um <Anzahl> Stellen
nach rechts. Von links rücken entsprechend Nullen nach.
Beispiel: (shiftright %011010111 3) ; liefert %000011010)